package body Algo_Largeur is

	function Comparer_Selon_Largeur (A,B : Plaque) return Boolean is
	begin
		return abs(Largeur_Piece - Get_Largeur(Get_Taille(A))) > abs(Largeur_Piece - Get_Largeur(Get_Taille(B)));
	end Comparer_Selon_Largeur;

	procedure Tri_Largeur (Liste_Pl : in out Liste_Plaques.T_Liste; Comm : in Commandes.Commande) is
		Largeur_Piece : Natural := Get_Largeur(Get_Dimension(Get_Piece_Assoc(Comm).all));
		function Comparer_Selon_Largeur_Piece is new Comparer_Selon_Largeur (Largeur_Piece);
		procedure Tri_Selon_Largeur is new Liste_Plaques.Liste.Tri(Comparer_Selon_Largeur_Piece);
	begin
		Tri_Selon_Largeur(Liste_Pl);
	end Tri_Largeur;
end Algo_Largeur;